package it.javaweb.actions.utenti;

import it.javaweb.beans.Utente;
import it.javaweb.dao.UtenteDAO;

import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;

public class PasswordValidator implements Validator {

	private UtenteDAO utenteDAO;
	
	public void setUtenteDAO(UtenteDAO utenteDAO) {
		this.utenteDAO = utenteDAO;
	}
	
	@Override
	public boolean supports(Class clazz) {
		return PasswordCommand.class.isAssignableFrom(clazz);
	}

	@Override
	public void validate(Object command, Errors errors) {
		ValidationUtils.rejectIfEmpty(errors, "login", "login.required", "Login cannot be empty");

		if ( !errors.hasErrors() ) {
			PasswordCommand cmd = (PasswordCommand) command;
			// check se esiste
			Utente utente = utenteDAO.getByLogin(cmd.getLogin());
			if ( utente==null ) {
				errors.rejectValue("login", "login.nontrovato", "Nessun utente corrisponde a questo login");
			}
		}
		
	}

}
